﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Inmobiliaria.Presenters.WFPresenters;
using Inmobiliaria.Exceptions;
using Inmobiliaria.Presenters.ViewInterfaces;

public partial class ContactenosWF : System.Web.UI.Page, IViewContacto
{
    private ContactoPresenter _presenter;
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            _presenter = new ContactoPresenter(this);
            if (!IsPostBack)
            {
                _presenter.InitView(Request.QueryString);
            }
        }
        catch (Exception ex)
        {
            ShowError(ex);
        }

    }
    protected void btnEnviar_Click(object sender, EventArgs e)
    {
        try
        {
            _presenter.Enviar();
            Limpiar();
        }
        catch (Exception ex)
        {
            ShowError(ex);
        }
    }
    #region IViewContacto Members
    public string Apellido
    {
        get { return txtApellido.Text; }
    }
    public string Nombre
    {
        get { return txtNombre.Text; }
    }
    public string Email
    {
        get { return txtEmail.Text; }
    }
    public string Telefono
    {
        get { return txtTelefono.Text; }
    }
    public string Celular
    {
        get { return txtCelular.Text; }
    }
    public string Asunto
    {
        get { return txtAsunto.Text; }
    }
    public string Texto
    {
        get { return txtTexto.Text; }
    }
    #endregion
    #region Mensajes
    public void Error(string message)
    {
        MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, message);
    }
    public void ShowMessage(string message)
    {
        MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, message);
    }
    public void ShowError(Exception ex)
    {
        if (ex is CustomException)
        {
            MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, ex.Message);
        }
        else if (ex is ApplicationException)
        {
            MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Informacion, ex.Message);
        }
        else
        {
            MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje.Error, ex.Message);
        }
    }
    public void ShowQuestion(string message)
    {
        MostrarMensajeDialogoPregunta(Enumeraciones.TipoDeMensaje.Pregunta, message);
    }
    private void MostrarMensajeDialogo(Enumeraciones.TipoDeMensaje tipoDeMensaje, string mensaje)
    {
        IMensajeDeDialogo mensajeDeDialogo = (IMensajeDeDialogo)this.Page.Master.FindControl("form1").FindControl("MensajeDeDialogo");
        System.Web.UI.Control mensajeR = this.Page.Master.FindControl("form1").FindControl("MensajeDeDialogo") as System.Web.UI.Control;
        if (mensajeR != null)
        {
            mensajeR.Visible = true;
        }
        mensajeDeDialogo.MostrarMensajeDialogo(tipoDeMensaje, mensaje);
    }
    private void MostrarMensajeDialogoPregunta(Enumeraciones.TipoDeMensaje tipoDeMensaje, string mensaje)
    {
        IMensajeDeDialogoPregunta mensajeDeDialogo = (IMensajeDeDialogoPregunta)this.Page.Master.FindControl("form1").FindControl("MensajeDeDialogoPregunta");
        System.Web.UI.Control mensajeR = this.Master.FindControl("form1").FindControl("MensajeDeDialogoPregunta") as System.Web.UI.Control;
        if (mensajeR != null)
        {
            mensajeR.Visible = true;
        }
        mensajeDeDialogo.MostrarMensajeDeDialogoPregunta(tipoDeMensaje, mensaje);

    }
    #endregion
    public void Limpiar()
    {
        btnEnviar.Visible = false;
        btnVolver.Visible = true;
    }
    protected void btnVolver_Click(object sender, EventArgs e)
    {
        try
        {
            _presenter.Volver();
        }
        catch (Exception ex)
        {
            ShowError(ex);
        }
    }
}